package com.vtuzx.kingdee.xqc_api.service;

import com.vtuzx.core.VtuzxException;
import com.vtuzx.core.bean.dto.VtuzxMap;
import com.vtuzx.core.bean.dto.VtuzxToken;
import com.vtuzx.kingdee.xqc_core.constant.BillType;
import com.vtuzx.web.bean.VtuzxDownloadBean;

import java.util.List;
import java.util.Map;

/**
 * 接口配置服务
 */
public interface IXqcConfigService {

    /**
     * 下载单据分录列表(多单据, 用于分录码打印)
     *
     * @param billType 单据类型
     * @param detailList 分录列表
     */
    VtuzxDownloadBean downloadBillBarcode(BillType billType, List<VtuzxMap> detailList) throws Exception;

//    /**
//     * 下载单据分录列表(用于分录码打印)
//     *
//     * @param billType 单据类型
//     * @param header 单据头
//     * @param boxList 分录列表
//     */
//    VtuzxDownloadBean downloadBillBarcode(BillType billType, VtuzxMap header, List<VtuzxMap> boxList) throws Exception;

    /**
     * 更新金蝶接口配置
     *
     * @param token Token
     * @param param 京东接口配置
     */
    void updateKingdeeConfig(VtuzxToken token, Map<String, Object> param) throws Exception;

    /**
     * 获取金蝶接口配置
     *
     * @param token Token
     * @return 接口配置
     */
    VtuzxMap getKingdeeConfig(VtuzxToken token) throws Exception;

    /**
     * 新建下推规则
     *
     * @param token Token
     * @param param 下推规则
     */
    void addPushRule(VtuzxToken token, Map<String, Object> param) throws Exception;

    /**
     * 删除下推规则
     *
     * @param token Token
     * @param ids ID列表
     */
    void deletePushRules(VtuzxToken token, List<String> ids) throws Exception;

    /**
     * 更新下推规则
     *
     * @param token Token
     * @param param 下推规则
     */
    void updatePushRule(VtuzxToken token, Map<String, Object> param) throws Exception;

    /**
     * 获取下推规则
     *
     * @param token Token
     * @param param 检索条件
     */
    VtuzxMap getPushRule(VtuzxToken token, Map<String, Object> param) throws Exception;
}
